package com.atguigu.day12.interface04.in3;

import org.junit.Test;

/*
接口:规范
     表达 has a的关系
     基本使用:
        声明接口:
           interface 接口名{}
        实现接口
          class 类名 implements 接口名{}
      接口的成员:
         1.抽象方法 默认被 public abstract修饰
         2.全局静态常量 默认被 public static final 修饰
         3.静态方法  默认被public 修饰
         4.默认方法  默认被public 修饰
             public default void sleep() {}
         5.私有方法 private void a() {}
    注意:
       1.如果一个类实现了接口 可以把当前类看成是接口的孩子
       2.一个类可以实现多个接口
       3.如果实现的多个接口中有同名的默认方法 则实现类必须对默认方法进行重写
        重写后 还想使用接口中的默认方法 接口名.super.默认方法名()  A.super.study();
       4.先继承再实现 如果继承的类和实现的接口内有同名的方法 使用继承的类中的方法
       5.如果一个类实现了多个接口 则需要实现接口内所有的抽象方法 否则 此类变为抽象类
       6.接口可以多继承
               interface Z extends H,F,M,K{}



 */
public class InterfaceTest {

    @Test
    public void test02(){
     Student2 s = new Student2();
     s.study();
    }

    @Test
    public void test01(){

        Student s = new Student();
        s.study();
    }

}
